import { instance } from '@/api/shared'
import type {Resp} from "@/api/shared/type.ts";


export type PatternDTO = {
  name: string;
  graph_data: PatternGraph;
  desc: string;
}

export type PatternGraph = {
    edges:Edge[]
    nodes:Node[]
}

export type Edge = {
    label  :string
    source :string
    target :string
}

export type Node = {
    id    :string
    label :string
}


export async function HelloWorld(): Promise<Resp> {
    try {
        const res = await instance.get('/debug/hello');
        return res.data;  // 直接返回 data
    } catch (err) {
        console.error(err);
        throw err;  // 可以选择重新抛出错误，或者返回默认值
    }
}

// TODO: 创建函数获取后端的微服务调用链数据 PatternDTO
export async function GetPatternDTO(): Promise<Resp> {
    try {
        const res = await instance.get('/micro/pattern/all');
        return res.data;  // 直接返回 data
    } catch (err) {
        console.error(err);
        throw err;  // 可以选择重新抛出错误，或者返回默认值
    }
}

export async function GetPatternMatchResult(): Promise<Resp> {
    try {
        const res = await instance.get('/micro/pattern/result/all');
        return res.data;  // 直接返回 data
    } catch (err) {
        console.error(err);
        throw err;  // 可以选择重新抛出错误，或者返回默认值
    }
}

export async function AddPattern(data: PatternDTO): Promise<Resp> {
    try {
        const res = await instance.post('/micro/pattern/add', data);
        return res.data;
    } catch (err) {
        console.error(err);
        throw err;
    }
}
